home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 July
/
EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso
/
earkit
/
kaffe
/
kaffe-0_9_0.readme
< prev
Wrap
Text File
|
1997-06-16
|
6KB
|
173 lines
KAFFE PATCH NOTES
===========================================================================
Written by Tim Wilkinson <tim@tjwassoc.demon.co.uk>, 1996-97.
Ported to AmigaOS by Matthias Hopf <mshopf@informatik.uni-erlangen.de>
IMPORTANT NOTES
===============
kaffe-0.9.0-gcalign-diff
------------------------
!!! autoconf must be called after applying this patch !!!
CHANGELOG ENTRIES
=================
kaffe-0.9.0-amiga-diff
----------------------
Sat May 24 17:00:27 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de>
* NOTES/FAQ.amiga: Cleaned up Amiga FAQ and added additional info.
* config/m68k/amigaos/{BUGS,COMMONPROBLEMS}.amiga: Removed.
* config/m68k/amigaos/md.[ch]: Cleaned up machine dependend code
and removed hacks.
* config/m68k/amigaos/threads.h: Fixed include check.
* config/m68k/amigaos/md.h: Enabled null pointer checks for the
first time.
* kaffevm/{intrp,jit}/machine.h: Removed CHECK_NULL macros as they
depend on a flag setting in md.h which is included *way after*
machine.h in machine.c.
* kaffevm/{intrp,jit}/machine.c: Added updated CHECK_NULL macros.
* kaffevm/kaffe.def: Updated CHECK_NULL macros to new calling
syntax.
* kaffevm/kaffe.def: Added loads of CHECK_NULL macro invocations.
kaffe-0.9.0-gcbug-diff
----------------------
Mon May 26 23:10:24 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de>
* kaffevm/gc-incremental.c: fixed wired GC finalization bug that
could get the GC into a livelock.
* {APIcore,APInet}/classes/Makefile.in: added lost files
* test/Makefile.in: cleaning up regression now.
kaffe-0.9.0-gcalign-diff
------------------------
Tue May 27 01:05:42 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de>
* config/config.h.in: Added ALIGNMENTOF_VOIDP.
* configure.in: Added Alignment test for void*.
* kaffevm/gc-incremental.c(scanConservative): Scaning memory in steps
of ALIGNEMNTOF_VOIDP instead of sizeof(void*).
kaffe-0.9.0-gg-diff
-------------------
Thu Jun 05 01:54:37 MET1 1997 Matthias Hopf <mshopf@informatik.uni-erlangen.de>
* NOTES/FAQ.amigaos,config/m68k/amigaos/REPORT.amiga: Renamed ADE
(Amiga Developer Environment to GG (Geek Gadgets), its new name.
PATCH EXPLANATIONS (PATCH MAIL BODYS)
=====================================
kaffe-0.9.0-amiga-diff
----------------------
Here are some additional kaffe patches for the Amiga.
Some notes: Most functions in kaffe.def didn't do CHECK_NULL
invocations correctly, as noone used them upto now, nobody
noticed that. I had to move the macro definitions in the machine.c
files of intpr/ and jit/ because they depend on a flag definition
in md.h, and I had to addapt them. I also renamed the flag name
into a more intuitive one. As noone ever used it, it should not
make any problems at all!
Not every class seems to work with kaffe on the Amiga, but
it's getting better. Perhaps it's a gc problem...
kaffe-0.9.0-gcbug-diff
----------------------
I have invested quite some time to investigate an obscure bug I noticed
within the garbage collector. When compiling GetInterfaces.java in
test/regression, Sun's compiler class would just enter an infinite loop.
However, this was not the case on my friends' computers.
What happened is the following:
After the main garbage collection a white memory block contained an object
that needed finalization. The garbage collector walked this object in order
to preserve potentially addressed objects (kaffevm/gc-incremental.c:319-).
The walked object seemed to have a reference to another white object, that
happened to be in the same memory block. Thus this object was greyed, and
the block was moved to the grey list.
Now as the GC tried to continue with the next block, it was stuck in the grey
list. Because the termination expression could never be fullfilled, it looped
endlessly...
It's possible that other wired garbage collector problems had the same
source. Well, now, find a patch enclosed which fixes the problem. I think
that was the most important sentence of this mail ;^)
The patch is not tested in incremental mode, but as the code is the same as
for non-incremental mode, there shouldn't be any noticable differences.
BTW - the patch also includes two Makefile.in that seemed to be lost -
'make distclean' at least needed them...
And there's a (small) patch for test/Makefile.in for cleaning up
test/regression included, too.
kaffe-0.9.0-gcalign-diff
------------------------
While trying to find out what was wrong with the GC (see my last mail) I
happened to find out that on m68k/amigaos regulary pointers on the stack were
not properly aligned (e.g. p%-4 = 2). I have added an aligment test to
configure.in and changed the scanner to use ALIGNMENTOF_VOIDP instead of
sizeof(void*) as stepping width.
I guess there are more CPUs which could benefit from this patch. If you would
like to know whether there are misalignments on your CPU, too, enable the
alignment test in kaffevm/gc-incremental.c (#define ALDBG(s) s) and wait for
any output of the form <x>, x being a digit, specifying the misalignment.
Note that *some* 'pointers' with misalignment showing up doesn't say anything
- they can well be integer values that were misinterpreted as pointers.
But if you happen to get for instance 20 misaligned pointers per garbage
collection, you should now have a problem less than before ;)
And please tell me when you have found another CPU that shared this problem.
Find the patch enclosed. Note that you will have to run autoconf first! I did
not include patches for 'configure', because the amigaos autoconf adds some
additional lines that don't make sense for other computers.
kaffe-0.9.0-gg-diff
-------------------
Well, at least it was decided to rename the development package from
the former ADE (Amiga Developer Environment) to Geek Gadgets.
Thus I have changed all occuring references to ADE in the FAQ.
That's it, folks :)
Matthias Hopf
<mshopf@informatik.uni-erlangen.de>
----
* Java and Javasoft are registered trademark of Sun Microsystems, Inc.